Operational analysis system for a communication device

ABSTRACT

A system and method for analyzing the real-time performance of a communication device. An aspect of the present invention records information input to the communication device during real-time operation of the communication device. A playback device or module may execute a model of the communication device in a non-real-time environment according to the recorded real-time input information. System execution in the non-real-time playback environment may, therefore, be equivalent to the original operation of the communication device that occurred in real-time. Accordingly, situations that occur in real-time may be efficiently recreated in non-real-time playback. An operator may analyze the past real-time performance of the communication device using the playback device or module, the recorded real-time input information, and a debugger utility if desired, without conducting additional trials to reproduce the desired operational situation.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

[0001] This patent application claims the benefit of U.S. Provisional Application No. 60/480,666, filed Jun. 23, 2003, the contents of which are hereby incorporated herein by reference in their entirety.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[0002] [Not Applicable]

SEQUENCE LISTING

[0003] [Not Applicable]

MICROFICHE/COPYRIGHT REFERENCE

[0004] [Not Applicable]

FIELD OF THE INVENTION

[0005] The present invention relates generally to operational analysis of real-time communication systems. The present invention relates more specifically to operational analysis of communication devices.

BACKGROUND OF THE INVENTION

[0006] Real-time systems are often difficult to analyze. Such is the case for both hardware and software based systems. In hardware based systems, for example, an analyst may not be able to access a desired signal, much less, access the desired signal and causes of such signal in real-time. In fact, in some systems, even the mere act of accessing an available signal may have detrimental effects on the system operation.

[0007] In software based systems, for example, standard analysis techniques such as setting breakpoints in a debugging environment and stepping through a software program do not typically work well for real-time systems. For example, once the software program execution is stopped in the debugger, the relationship between the program's execution and the real-time chain of events is broken. Events continue to occur in real-time while the program is executed at a completely different non-real-time rate under the control of the debugger. Such single stepping through a program may not reveal the performance information sought since, by the time the section of software code of interest is executed, the conditions causing the event of interest have passed.

[0008] Also in software-based systems, for example, engineers have traditionally relied on debug messages in the program that normally include text strings and indicate which events are taking place, which piece of code is executing, and the values of certain parameters. However, such a technique does not provide a complete performance analysis solution since such messages cannot describe everything happening in the system. Using this traditional technique, debug messages would likely have to be incorporated into every part of the program where execution flow changes (e.g., in every “if” and “while” statement). The amount of debug messages may be excessive in such a case, and in fact, the execution of such debug messages may interfere with real-time system timing.

[0009] Further, when input data to a real-time system (e.g., a communication system) changes from one operation to the next, operational analysis becomes increasingly difficult. An analyst may need to perform a multitude of test trials before a problem can be reproduced, analyzed, understood and fixed. Another complication that may occur (e.g., in communication systems) is when the problem occurs only at a remote site due to the variance of the operational conditions. A trip to the remote site by one or more engineers may be required and can be time consuming and expensive.

[0010] Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.

BRIEF SUMMARY OF THE INVENTION

[0011] A system and method are provided for analyzing the performance of a real-time communication device (e.g., an Asymmetric Digital Subscriber Line (ADSL) modem). An aspect of the present invention fully records real-time information (e.g., samples, data and commands) that is input to a real-time communication device over a period of time. A playback device or module executes a model of the real-time communication device in a non-real-time environment according to the recorded information. System execution in the non-real-time playback environment is, therefore, equivalent to the original execution of the real-time communication device that occurred in real-time. Accordingly, any problems that occurred in real-time may be repeated in non-real-time playback. An operator may, for example, analyze the past real-time performance of the real-time communication device using the playback device or module, the recorded information, and a debugger utility if desired, without conducting additional trials to reproduce the operational situation of interest.

[0012] These and other advantages, aspects and novel features of the present invention, as well as details of illustrative aspects thereof, will be more fully understood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

[0013]FIG. 1 is a diagram illustrating a real-time operating environment supporting operational analysis of a real-time communication device via recording of input information, in accordance with various aspects of the present invention.

[0014]FIG. 2 is a diagram illustrating a non-real-time playback environment for supporting operational analysis of the operation of the real-time communication device of FIG. 1, for example, in accordance with various aspects of the present invention.

[0015]FIG. 3 is a flowchart illustrating a method for analyzing the operation of the real-time communication device of FIG. 1, for example, using the playback environment of FIG. 2, for example, in accordance with various aspects of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0016]FIG. 1 is a diagram illustrating aspects of a real-time operating environment 100 supporting operational analysis of a real-time communication device 101 via recording of input information, such as data, input samples, and commands, in accordance with various aspects of the present invention. The real-time communication device 101 may, for example, be a real-time high-speed communication device, like an ADSL modem or cable modem. The exemplary real-time operating environment 100 includes a real-time communication device 101 and a memory device 102, such as a hard disk, for example. The real-time communication device 101 includes a recording platform 103 for causing the recording of input data 107, input samples 105, and commands 106 to the memory device 102 as recorded input data, input samples and commands 104. The real-time communication device 101 is coupled to the memory device 102.

[0017] As mentioned previously, the real-time communication device 101 may be, for example, an ADSL modem. ADSL (Asymmetric Digital Subscriber Line) is a technology used to deliver broadband service using existing copper telephone lines. ADSL supports data rates from approximately 384 Kbps to 25 Mbps, and rising, when receiving data (i.e., the downstream rate), and from approximately 32 Kbps to 3 Mbps, and rising, when sending data (i.e., the upstream rate). The different downstream and upstream rates define the asymmetry.

[0018] A special communication device known as an ADSL modem is used to provide ADSL communication. In general, a modem (modulator/demodulator) is a communication device or program that enables a personal computer (PC) to transmit data over, for example, cable or telephone lines. PC information is stored and utilized in a digital form whereas information that is transmitted over telephone lines is transmitted in the form of analog signals. A modem converts between the digital and analog information forms. A modem may be internal or external to a PC. Two examples of high-speed modems are ADSL modems and cable modems. In general, as defined herein, “high-speed ” refers to any communication device operating above 56 Kbps.

[0019]FIG. 1 illustrates the communication device 101 in a configuration and environment similar to an ADSL modem configuration and environment. However, the communication device 101 aspect of the present invention disclosed herein is by no means limited to an ADSL modem, nor is the communication media limited to telephone line communication. For example, the communication device 101 may be a cable modem, optical modem, radio frequency modem, or other known communication or interface device. The communications media may be, for example, telephone wire, television cable, optical cable, radio interface, or other known media.

[0020] Referring to FIG. 1, the communication device 101 converts the input samples 105 from the telephone line side of the communication device 101 to output data 108 on the PC side of the communication device 101. Conversely, the communication device 101 converts the input data 107 from the PC side of the communication device 101 to the output samples 109 on the telephone line side of the communication device 101. The commands 106 arrive at the communication device 101 from the PC side and control the mode of operation of the communication device 101. For example, one command may be “make a connection, ” and another command may be “send data. ” The input samples 105 may arrive at the communication device 101 in analog form and be converted to digital form by the communication device 101. The input data 107 and the commands 106 may arrive at the communication device 101 in digital form. Note that though the exemplary communication device 101 is a computer communication device, such as an ADSL modem, the scope of various aspects of the present invention should by no means be limited to characteristics of computer communication devices.

[0021] The recording platform 103 may reside on or with the communication device 101. The recording platform 103 may include hardware, software, or a combination thereof. For example, a processor on the communication device 101 may execute recording platform 103 instructions to cause the digitized input samples 105, input data 107 and commands 106 to be stored as recorded input samples, input data, and commands 104. Alternatively, for example, the recording platform may be a self-contained circuit or a stand-alone device that is communicatively coupled to other components of the communication device 101. Alternatively, for example, the recording platform may be integrated onto a communication device integrated circuit or multi-chip module. Accordingly, the scope of various aspects of the present invention should not be limited to particular characteristics and configurations of the recording platform 103.

[0022] The recording platform 103 may, for example, cause the information to be stored in exactly the same sequence as the information arrives as the communication device 101. The recording platform 103 may, for example, cause the information to be stored on a memory device 102 of a computer that is communicationally coupled to the communication device 101. Such a computer may, for example, be a computer directly connected to the communication device 101, or may be a computer coupled to the communication device 101 through a computer network.

[0023]FIG. 2 is a diagram illustrating a non-real-time playback environment 200 for analyzing the operation of the real-time communication device 101 (e.g., an ADSL modem) of FIG. 1, for example, in accordance with various aspects of the present invention. Referring to FIG. 2, the non-real-time playback environment 200, which may also be referred to as a debug environment, includes a memory device 102 and a computer 202 running debugging software 205, which may also be referred to as a “debugging tool.”

[0024] The memory device 102 may, for example, be the same memory device 102 discussed previously with regard to FIG. 1. For example, the memory device 102 may be a hard disk of a computer that is communicatively coupled to the communication device 101, or the hard disk of a computer that was communicatively coupled to the communication device 101 at some point during real-time operation of the communication device 101. The memory device 102 may include recorded information, such as, for example, input data, input samples and commands 104 that were recorded in the real-time operating environment 101 discussed previously. The memory device 102 may alternatively contain any input/output information of interest.

[0025] The computer 202 may, for example, be a personal computer (PC) or a network workstation. Such a computer 202 typically has a memory device containing software instructions and a processor for executing the software instructions. The computer 202 includes playback software 204, which includes a model of the communication device 101. For example, as illustrated in FIG. 2, the playback software 204 may include a bit-exact software model of an ADSL modem 101. In accordance with an aspect of the present invention, the playback software 204 may, for example, run as an application on a PC or workstation under a Windows or Linux operating system. The playback software 204 may, for example, reside on a hard disk of the computer 202 or a compact disc or DVD.

[0026] Alternatively, the computer 202 may be any playback device (or hardware or software module) that may operate according to the input information stored in the memory device 102. For example and without limitation, such a playback device may include hardware or software modeling components. Such a playback device may, for example, include various components of the actual communication device being modeled. Accordingly, the scope of various aspects of the present invention should by no means be limited to a particular configuration of playback device (or module or platform).

[0027] The computer 202 is coupled to the memory device 102. The memory device 102 may be external or internal to the computer 202. The coupling between the computer 202 and the memory device 102 may be as simple as a dedicated cable or as complex as the Internet. The memory device 102 may be a hard drive in the computer 202 on which also resides the playback software 204 and debugging software 205.

[0028] In accordance with an aspect of the present invention, an operator executes the playback software 204 on the computer 202. The playback software instructions 204, when executed, cause the reading of the recorded input information from the memory device 102. The playback software 204 then operates the communication device model according to the input data, input samples and commands 104. The operator may also execute debugging software 205, which allows the operator to control and observe the operation of the communication device model as the communication device model operates in accordance with the recorded input information.

[0029] In accordance with an aspect of the present invention, the recorded input information 104 are the exact data, samples, and commands recorded in the real-time operating environment 100 over a period of time. Also, the playback software 204 may be a bit-exact model of the operation of the communication device 101 (e.g., an ADSL modem). Therefore, any communication device 101 behaviors that occurred in the real-time operating environment 100 during the period of time over which the input data 107, input samples 105, and commands 106 were recorded will recur during analysis in the non-real-time playback environment 200.

[0030]FIG. 3 is a flowchart of a method 300 for analyzing the operation of the real-time communication device 101 of FIG. 1, for example, using the playback environment 200 of FIG. 2, for example, in accordance with various aspects of the present invention. In step 301, a communication device (such as an ADSL modem) is operated in real-time.

[0031] In step 302, while the communication device is operating in real-time, information input to (and perhaps output from) the communication device is recorded. Such real-time information may include the input data, input samples, and commands discussed previously. Alternatively such real-time information may include many other types of real-time information associated with the communication device.

[0032] The communication device may gather the real-time information internally. The communication device may direct the recording of the real-time information in a memory device external to the communication device. For example, the communication device may cause the real-time information to be written to the hard drive of a computer connected to the communication device. The communication device may optionally be driven as a Windows device driver in a computer and write the real-time information directly to the hard drive of the computer. The communication device may also cause the real-time information to be sent to a computer coupled to the communication device through a computer network, such as a local area network or the Internet.

[0033] In step 303, the recorded input information, such as, for example the real-time recorded input data, input samples, and commands are read into a model of the communication device in non-real-time. This step may be accomplished, for example, by the execution of computer instructions in playback software on a computer. Such playback software may, for example, when executed by a processor, cause the reading of the recorded real-time information into a software model of the communication device (e.g., into a software model of an ADSL modem). The software model may, for example, be a bit-exact model, producing results that are the same as the original device that the software model is modeling. The playback software may drive, or execute, the model of the communication device in non-real-time in accordance with the recorded real-time information. Consequently, the model of the communication device may mimic, perhaps exactly, the real-time operation of the communication device.

[0034] In step 304, the operation of the software model on the recorded input data and commands is observed in order to analyze, in non-real-time, the real-time performance of the communication device. For example, an operator may, through the utilization of aspects of the invention, debug the operation of a faulty communication device. An operator may, through the use of a software debugger tool, execute the playback instructions, and observe and control the operation of the communication device model in response to the recorded real-time information. The operator may thus recreate and observe a real-time operational situation of interest, in order to ascertain the real-time response of the actual communication device in response to the real-time stimuli received by the device.

[0035] As an example, refer to FIG. 1 and the ADSL modem example. In the real-time operating environment 100, the ADSL modem 101 may operate over a period of time on the input data 107, input samples 105, and commands 106. During real-time operation, the recording software platform 103 within the ADSL modem 101 causes the recording of the input data 107, input samples 105, and commands 106, perhaps writing this information directly to the hard disk 102. In such a scenario, the ADSL modem 101 may be a PCI card that is plugged into a PC, which in turn includes the hard disk 102.

[0036] Referring then to FIG. 2, in the non-real-time playback environment 200, the PC 202, which may be the same PC that houses the hard disk 102, reads the recorded input data, input samples, and commands 104 from the hard disk 102. The PC 202 runs the playback software 204 that operates a model of the ADSL modem 101 in accordance with the recorded input data, input samples, and commands 104 in non-real-time. This provides the opportunity for an operator to analyze the real-time operation of the ADSL modem 101 in non-real-time.

[0037] In accordance with an aspect of the present invention, the hard disk 102 and the ADSL modem 101 may be integrated into the PC 202. In accordance with an alternative aspect of the present invention, the ADSL modem may be a standalone device that is connected to the phone lines on one end and to a PC on the other end via, for example, an Ethernet connection. In such a configuration, the ADSL modem may forward the input data, input samples, and commands to the PC over the Ethernet connection. The PC then may include recording software instructions, which when executed, cause the capture and recordation of the input data, input samples, and commands to the hard disk.

[0038] In summary, a system, apparatus and method are provided for analyzing the real-time operation of a communication device, such as an ADSL modem or a cable modem, in non-real-time.

[0039] While the invention has been described with reference to certain aspects and embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from its scope. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed, but that the invention will include all embodiments falling within the scope of the appended claims. 

What is claimed is:
 1. A system for analyzing real-time operation of a communication device, the system comprising: a communication device comprising a recording module, wherein the recording module causes the recording of input information that is input to the communication device during real-time operation of the communication device; and a playback device comprising a model of the communication device that the playback device executes according to the recorded input information.
 2. The system of claim 1, further comprising a debugging module that provides for controlling and observing the operation of the playback device.
 3. The system of claim 1, wherein the playback device is communicatively coupled to the communication device and the recording module causes the input information to be sent to the playback device during real-time operation of the communication device.
 4. The system of claim 1, further comprising a computer communicatively coupled to the communication device, wherein the recording module causes the recording of the input information to a memory device of the computer.
 5. The system of claim 1, wherein the input information comprises input data and input commands from a computer, and input information from a device other than the computer.
 6. The system of claim 1, wherein the model of the communication device is a bit-exact software model.
 7. The system of claim 1, wherein the model of the communication device comprises a device substantially similar to at least a portion of the communication device.
 8. The system of claim 1, further comprising a networked computer coupled to the communication device over a computer network, and wherein the recording module causes the communication device to send the input information to the networked computer.
 9. A communication device comprising: a first input that receives information from a first device; a second input that receives information from a second device that the first device is communicating with using the communication device; and a recording module communicatively coupled to the first input and the second input that causes input information arriving at one or both of the first input and the second input during real-time operation of the communication device to be recorded.
 10. The communication device of claim 9, further comprising a command input that receives command information from the first device, and wherein the recording module further causes command information arriving at the command input during real-time operation of the communication device to be recorded.
 11. The communication device of claim 9, wherein the first device is a computer system, and wherein the recording module causes the input information arriving at one or both of the first input and the second input during real-time operation of the communication device to be recorded on a memory device of the computer system.
 12. The communication device of claim 9, wherein the recording module causes the input information arriving at one of both of the first input and the second input to be communicated to a networked computer communicatively coupled to the communication device over a communication network.
 13. The communication device of claim 9, wherein the communication device comprises a computer communication device.
 14. A real-time operating environment for a communication device, comprising: a memory device; and a communication device communicatively coupled to the memory device, the communication device comprising: a first input that receives information from a first device; a second input that receives information from a second device that the first device is communicating with using the communication device; and a recording module communicatively coupled to the first input, the second input and the memory device that causes information received at one or more of the first input and the second input to be stored in the memory device.
 15. The real-time operating environment of claim 14, wherein the communication device further comprises a command input that receives command information from the first device, and wherein the recording module further causes command information received at the command input to be stored in the memory device.
 16. The real-time operating environment of claim 14, wherein the first device comprises the memory device.
 17. The real-time operating environment of claim 14, further comprising a networked computer communicatively coupled to the communication device, and wherein the networked computer comprises the memory device.
 18. The real-time operating environment of claim 14, wherein the communication device is a computer communication device.
 19. A non-real-time playback environment for analyzing real-time performance of a communication device, the environment comprising: a memory having input information that was obtained from a communication device during real-time operation of the communication device; and a playback module communicatively coupled to the memory, the playback module comprising a model of the communication device that the playback module executes according to the input information in the memory module.
 20. The non-real-time playback environment of claim 19, wherein the input information comprises: information from a computer coupled to the communication device; and information from a device that the computer is communicating with using the communication device.
 21. The non-real-time playback environment of claim 19, wherein the input information comprises data and command information sent from a computer to the communication device.
 22. The non-real-time playback environment of claim 19, further comprising a debugging module communicatively coupled to the playback module that provides for controlling and observing the operation of the playback module.
 23. The non-real-time playback environment of claim 19, wherein the model of the communication device is a bit-exact software model of the communication device.
 24. The non-real-time playback environment of claim 19, further comprising a computer communicatively coupled to the communication device, and wherein the memory is a memory device of the computer.
 25. The non-real-time playback environment of claim 24, wherein the computer comprises the playback module.
 26. The non-real-time playback environment of claim 19, further comprising a networked computer communicatively coupled to the communication device over a computer network, and wherein the networked computer comprises the memory.
 27. A method for analyzing real-time operation of a communication device, the method comprising: operating the communication device in real-time, the communication device comprising a recording module; utilizing the recording module to cause the recording of input information input to the communication device during real-time operation of the communication device; and executing a model of the communication device, wherein the model is responsive to the recorded input information.
 28. The method of claim 27, wherein utilizing the recording module comprises utilizing the recording module to cause the recording of the input information to a memory device of a computer that is connected to the communication device.
 29. The method of claim 27, wherein: operating the communication device comprises running the communication device as a Windows device driver on a computer that is utilizing the communication device; and utilizing the recording module comprises utilizing the recording module to cause the recording of the input information to a memory device of the computer.
 30. The method of claim 27, wherein utilizing the recording module comprises utilizing the recording module to cause the recording of the input information a memory device of a computer that is communicatively coupled to the communication device through a communication network.
 31. The method of claim 30, wherein utilizing the recording module further comprises executing a recording application program on the computer.
 32. The method of claim 27, wherein utilizing the recording module comprises utilizing the recording module to cause the recording of input data and input commands from a computer and input samples from a communication medium.
 33. The method of claim 27, further comprising reading the recorded input information into a software model of the communication device.
 34. The method of claim 27, wherein the model is a bit-exact software model of the communication device.
 35. The method of claim 27, further comprising observing execution of the model on the recorded input information.
 36. The method of claim 35, wherein observing execution of the model comprises executing a debugging tool communicatively coupled to the model.
 37. The method of claim 27, further comprising observing execution of the model with the recorded input information in non-real-time.
 38. The method of claim 27, wherein the communication device comprises a computer communication device. 